package com.engine.salary.entity.siaccount.po;

import com.engine.hrmelog.annotation.ElogTransform;
import com.engine.salary.annotation.Auth;
import com.engine.salary.annotation.Encrypt;
import com.engine.salary.enums.auth.AuthCheckTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.Set;


/**
 * @Author weaver_cl
 * @Description: 核算主表 hrsa_bill_batch
 * @Date 2022/4/11
 * @Version V1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//hrsa_bill_batch
@ElogTransform(name = "福利台账主表")
@Auth(page = "siAccount", checkType = AuthCheckTypeEnum.TAX, taxAgentIdField = "paymentOrganization")
public class InsuranceAccountBatchPO {

    /**
     * 主键id
     */
    @ElogTransform(name = "主键id")
    private Long id;

    /**
     * 账单月份
     */
    @ElogTransform(name = "账单月份")
    private String billMonth;

    /**
     * 账单状态 0-未归档 1-已归档
     */
    @ElogTransform(name = "账单状态")
    private Integer billStatus;

    /**
     * 社保核算人数
     */
    @ElogTransform(name = "社保核算人数")
    private Integer socialNum;

    /**
     * 公积金核算人数
     */
    @ElogTransform(name = "公积金核算人数")
    private Integer fundNum;

    /**
     * 其他福利核算人数
     */
    @ElogTransform(name = "其他福利核算人数")
    private Integer otherNum;

    /**
     * 社保缴费总额(单位+个人)
     */
    @Encrypt
    @ElogTransform(name = "社保缴费总额(单位+个人)")
    private String socialPay;

    /**
     * 公积金缴费总额(单位+个人)
     */
    @Encrypt
    @ElogTransform(name = "公积金缴费总额(单位+个人)")
    private String fundPay;

    /**
     * 其他福利缴费总额(单位+个人)
     */
    @Encrypt
    @ElogTransform(name = "其他福利缴费总额(单位+个人)")
    private String otherPay;

    /**
     * 核算人
     */
    @ElogTransform(name = "核算人")
    private String accountant;

    /**
     * 备注
     */
    @ElogTransform(name = "备注")
    private String remarks;

    /**
     * 创建人id
     */
    @ElogTransform(name = "创建人id")
    private Long creator;

    /**
     * 是否删除
     */
    @ElogTransform(name = "是否删除")
    private Integer deleteType;

    /**
     * 创建时间
     */
    @ElogTransform(name = "创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ElogTransform(name = "更新时间")
    private Date updateTime;

    /**
     * 租户key
     */
    @ElogTransform(name = "租户key")
    private String tenantKey;

    /**
     * 个税扣缴义务人
     */
    @ElogTransform(name = "个税扣缴义务人id")
    private Long paymentOrganization;

    private String subcompanyName;
    private Long subcompanyId;
    private String departmentName;
    private Long departmentId;
    private String jobtitleName;
    private Long jobtitleId;
    private String jobcall;
    private Long jobcallId;
    private String status;


    private Set<String> opts;

}
